web6047 バックナンバー


web6047 2024年 1月

■ 今 私が iTunes で聞いている音楽

Play start time: 2024/04/28 Sun. 21:19:49 [3日前]
 針の城
サガ フロンティア オリジナル・サウンドトラック / 伊藤賢治
Good: 0
LIVE DISP.

■ AI との会話集

Google Bard との会話

OpenAI ChatGPT との会話



■ 日記

2024/1/25(木)

PC-9801 用アセンブラ「LASM」買いました

買いましたねぇ。16,800円(税込)でした。

ちょっと無理して買ったのですが、私のプログラミング人生の終着駅みたいなものだと思っています。

これでいろいろ勉強出来たら幸せだろうなぁ。

PC-9801 には宇宙も広がっていることだし。



では、LASM という製品(ソフトウェア)の様子を見ていきましょうかね。


銀行振込で支払いを済ませて連絡すると、こんな様子でメールで届きまして、


Windows で .zip を展開すると、こんなファイル構成。


「DiskExplorer」で PC-98 エミュレータのディスクイメージを開き、それらファイルをコピー


PC-9801 エミュレータ上で実行すると、体験版はその表示がありますが、


16,800 円のほうは、その表示がありません。


体験版はアセンブリのソースコードで 100 行までしかアセンブルできませんが、16,800 円はその制限がもちろんありません。

また、16,800 円のほうは、各種ヘルプと LIED というシンプルな統合環境が付いてきます。


LIED でアセンブリ・プログラムを表示させた様子


最初ちょっとうまくいきませんでしたが、Turbo C++ でのインラインアセンブラも動きました。ちゃんと実行までできます。


以上は LASM.EXE についてでしたが他に LASM32.EXE もあります。


32bit 版の LASM32.EXE も同梱されている。


LASM32.EXE は Windows 上でも動きます。

以下は LASM ヘルプからの引用です。

メリット
32 ビット版では、巨大なプログラムを開発できます。16 ビット版ではメモリ不足でプログラムをアセンブル、リンクできない場合は、32 ビット版を使用してください。定量制限値も 16 ビット版より緩和されています。

また、32 ビット版では、8+3 形式を超える "長いファイル名" を使用できます。

デメリット
32 ビット版は、通常の MS-DOS では実行できません。Windows 95/98 または Windows NT のコマンド プロンプトを使用する必要があります。ただし、これらを使って開発したプログラムは、16 ビット版を使用した場合とまったく同じように、MS-DOS でも実行できます。

上記の点を除き、16 ビット版と 32 ビット版は同じです。作成するプログラムが 32 ビット環境で動作するかどうかは、LASM/LIL 自体が 32 ビット環境で動作するかとは無関係です。LASM.EXE で 32 ビット用プログラムを開発したり、LASM32.EXE で 16 ビット用プログラムを開発することもできます。

Windows 11 で LASM32.EXE を実行したところ


Windows 11 64bit 版には、32bit アプリケーションを動作させるための  WOW64 というサブシステム(エミュレータ)があるので、LASM32.EXE を動かすことができます。

「WOW」(ワウ、ワオ)と言うと、英語の喜びや驚きを示す単語のように聞こえますが、正しくは、「Windows On Windows」の略です。「WOW64」は、Windows 64bit 版の上で、Windows 32bit 版のソフトウェアを動かす、という意味です。

Windows 11 上で LASM32.EXE が動作するので、PC-9801 用のソフトウェアを Windows 上で開発することができます。

(アセンブルしてできた .exe ファイルをいちいち PC-9801 へ持っていくのは面倒ですが)


以上、LASM(Light Macro Assembler) 製品版でした。


%whatispc98%

%whatislasm%


2024/1/22(月)

とうとう AI が動画について話すようになった!

「窓の杜」で「動画について話すことができる AI」について記事になっていました。

『GoogleのマルチモーダルAI「Gemini Pro Vision」は、動画についてどこまで正しく答えられるか?』

この記事では利用方法を説明してくれていて、私も試すことができました。


Vertex AI 画面上の「メディアを挿入」ボタンで送った動画



AI に対して、動画について質問(6問)し、回答を得ることができました。


Q1. この動画を説明してくださいA. これは、RPGツクール2000で作られたゲームのプレイ動画です...

…ちがいますよ、私が JavaScript でプログラミングしたものです!

まぁ、たしかに「ツクール2000」みたいなもんだけどさ。。



Q2. 「こんにちは!」と言ったのは誰ですか?A. 仲間の「ボック」です。

…ちがいますよ、「こんにちは!」と言ったのは町人です。

町人の色(緑)と、2番目キャラのボックの色(緑)が同じなので混同したんですかね。



Q3. プレイヤーは町を出た後、どこへ行きましたか?A. 洞窟に入りました。

…正解! 動画を読み取ってるよ。すごくない?



Q4. 洞窟へ入った後、どうなりましたか?A. モンスターが襲ってきた。

…正解!! 実は正解できる質問をあれこれ探した後ではあります。 orz

でもそれでもすごいかも。



Q5. どんなモンスターが襲ってきましたか?A. ジルルというモンスターが...

…ジルルは仲間です!

モンスター画像の右上にジルルという名前があるので、そう思ったんですかね。



Q6. モンスターを倒した後、プレイヤーは何をしようとしましたか?A. 宝箱を...

…宝箱はありません!なんこうを使おうとしました。

一般的な RPG は敵を倒したら宝箱を開けるのが普通だから、確率として、そう答えたんですね。


そんなわけで、記事のおかげで私も AI の動画対応を見ることができました。

今回渡した動画が AI にとっては推測する部分が多かったせいか、的外れな発言が多くなりました。

でもこれって、もしかしたら、「ゲームの画面がプレイヤーには不親切だ」っていうことを表しているのかもしれません…。

どこかのおじさんやおばさんが、このゲーム画面を見て、AI と同じように間違って認識してしまうところが想像できます。

それでゲーム画面の作りを直すことができます。

勉強になるなぁ。。AI 技術ってやっぱりすごいな。


2024/1/21(日)

Adobe Flash のようなものを実現する

Adobe Flash の代替は HTML5

ひと世代前の話で、昔は「Adobe Flash(アドビ フラッシュ)」というものが WEB 上では盛んに使われていて、そのクオリティはとても高く、楽しいものでした。

時代が進み、「HTML5」というものが登場して、「フラッシュはその役割を終えた」みたいに言われて、フラッシュは WEB 業界から姿を消しました。

(中略)、2010 年ごろから Flash は衰退していきます。大きな影響をもたらしたのが、当時 Apple の CEO だったスティーブジョブズが iPhone OS で Adobe の Flash テクノロジをサポートしない理由を説明するメッセージを発表したことです。

https://www.asobou.co.jp/blog/web/flash-html5#Flash

この記事や、この記事からリンクされている「iPhone OSがFlashをサポートしない6つの理由 - ジョブズ氏が説明」というページを読んでいると、

『フラッシュって今の時代にそんなに害だったのかな?』

『今の時代にフラッシュがあっても別によくないか?』

と思います。

フラッシュが輝いていたのは確かで、今の HTML5 による最近のページも悪くはないけど何となくフラッシュの輝きに追いついていない気がします。


HTML5 の問題点

…まぁ、それはともかく、フラッシュの代替が HTML5 ということですが、実際は、

「フラッシュと同じしくみを一体どうやって HTML5 で実現するのか」

という問題が、あるんじゃないかと思います。


変数名の競合

一番問題になるのは、複数の HTML5(JavaScript)のアプリを1つのページに一緒に載せようとしたときに、「変数同士が競合してしまう」です。(下記プログラム)

<!-- アプリ1 -->
<script>
    a = 123;

</script>

<!-- アプリ2 -->
<script>
    a = 321;
</script>

アプリ1とアプリ2がもともとは別のページ上で開発されていた場合に、それを1つのホームページ上に持ってこようとすると、上記の例では、それぞれのアプリで知らずに使った a という変数が、1つのページ上で名前が競合してしまいます。

(先の a は後の a により、321 になってしまいます。これはアプリ1にとっては想定外です)


クラス名の競合

しかし変数名の競合は、JavaScript の「クラス」という記法を用いれば、「名前空間」というものが働いて、2つの変数 a を区別することが出来るようになります。(下記プログラム)

<!-- アプリ1 -->
<script>
    class App1 {
        constructor() {
            this.a = 123;
        }
    }

</script>

<!-- アプリ2 -->
<script>
    class App2 {
        constructor() {
            this.a = 321;
        }
    }

</script>

でも、まったく別のアプリどうしの場合はそれで良いのですが、「ひとつのアプリの修正を記事として比較するために、同じクラスを続けて載せる場合」は、変数名の競合に代わってクラス名の競合が発生します。(下記プログラム)

<!-- アプリ1 -->
<script>
    class App1 {
        constructor() {
            this.a = 123;
        }
    }

</script>

<!-- アプリ1 
修正版-->
<script>
    class App1 {
        constructor() {
            this.a = 1234;
        }
    }

</script>

このとき、Uncaught SyntaxError: redeclaration of class App1(クラス App1 を繰り返し宣言してるぞ)というエラーが出ます。

そのため、ひとつのページに複数の HTML5 アプリを載せようと考えたとき、クラスを使って対策するのもいまいちなんです。


IFRAME タグが理想的

そこで IFRAME タグです。

<!-- アプリ1 -->
<iframe src="app1.html"></iframe>


<!-- アプリ1 修正版 -->
<iframe src="app1-2.html"></iframe>

このようにすると、IFRAME タグごとに一種の名前空間が作成され、アプリ同士をはっきりと区別できます。

変数名はクラスで区別しなくても同じ a という名前の変数が使えますし、

クラス名もそれぞれのアプリで同じ名前が使えます。

これで複数のアプリが同時にページ上に存在し、問題なく動作できます。理想的です。

(使い始めたばかりなので、何か私の知らない問題があるかもしれません)


このことを知っている人はどうですかね、少ないんじゃないかなと思います。

みんな知っているなら、昔のフラッシュの全盛期のように HTML5 のアプリが栄えても良いと思うのですが、そうなっていないように見えます。


IFRAME 具体例

私もこれまで IFRAME タグに注目せずに、このホームページ上で「Web BASIC」とかそんな名前を付けて、ページ上で複数の JavaScript プログラムをお互いに競合せずに動かすしくみを何度か作ってきました。

最近になって IFRAME タグに注目するようになって、下記のように IFRAME タグを使用して「修正前」と「修正後」の2つのプログラムを同時に掲載できるようになりました。


修正前: 点だけを回すプログラム


修正後: 線画を描くプログラム


これで、フラッシュ並みに WEB の表現力は上がると思うのですが…。


2024/1/6(土)

アニメ3つ

1. 「16bit センセーション  ANOTHER LAYER」

PC-9801 を題材にしたアニメ。

現代 2023 年のイラストレーターの女の子が、PC-9801 全盛期の 1992 年と、Windows 95 が発売される 1996 年にタイムリープする。

主人公のコノハという女の子が中古ソフトショップのおばあさんに志を語るところが良かったです。

他にサブタイトルのない「16bit センセーション」という話もあります。

2. 「呪術廻戦」

"渋谷事変" という話になってから、それまでと比べて面白さが一回り下がってしまいました。

ネットで「呪術廻戦 面白くない」で検索すると、同じように感じている人はいるみたいです。

それでも、他のアニメに比べると、いい線行っているのは確かだと思うので、今でも観ています。

3. 「推しの子」

半年前くらいにだいぶ流行っていて、今現在は放送は終了しています。

YOASOBI の主題歌や、いろいろな広告を見る限り、まさか第一話目から妊娠していて、まさか主人公から外れるとは思いませんでした。

ただの芸能界事情を描いたアニメだと思っていましたが、闇に包まれたミステリーが展開されます。


2024/1/2(火)

謹賀新年

あけましておめでとうございます。

画像リンクのテスト「パンジー」


ここはページの一番下です